package leetcode_800;

/**
 *@author 周杨
 *LargestNumberAtLeastTwiceOfOthers_747 给定一个数组 问是否其中最大的数是其他数的两倍以上
 *describe:采用堆的思想 建立大小为2的堆 遍历即可  AC 96%
 *2018年10月16日 下午1:56:26
 */
public class LargestNumberAtLeastTwiceOfOthers_747 {
	public static void main(String[] args) {
		LargestNumberAtLeastTwiceOfOthers_747 test = new LargestNumberAtLeastTwiceOfOthers_747();
		System.out.println(test.dominantIndex(new int[] { 0, 0, 3, 2 }));
	}

	public int dominantIndex(int[] nums) {
		if (nums.length == 1)
			return 0;
		int index = 0;
		int max , second ;
		if(nums[0]>=nums[1]) {
			max=nums[0];
			second=nums[1];
			index=0;
		}
		else {
			max=nums[1];
			second=nums[0];
			index=1;
		}
		for (int i = 2; i < nums.length; ++i) {
			if (nums[i] > second) {
				if (nums[i] > max) {// 更新max
					second = max;
					max = nums[i];
					index = i;
				} else
					second = nums[i];
			}
		}
		return max >= second * 2 ? index : -1;
	}
}
